package lq3525;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class Main{
   static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
   

   public static void main(String[] args) throws Exception {
	   //获取n
	   String line = br.readLine();
       int n=Integer.parseInt(line);
       Map<Integer,Integer> map=new HashMap<>();
       //对应题目中最终的i和j,初始化数据是为了方便后面的比较操作
       int min=99999999,max=0;
       //对应题目中每个可行解的i和j
       int r=min,l=0;
       String[] nums = br.readLine().split(" ");
       //遍历每个数
       for (int i=0;i<n;i++){
           int a=Integer.parseInt(nums[i]);
           //k为平方根，每个小于平方根的因数都有个对应大于平方根的因数
           int k= (int) Math.sqrt(a);
           //遍历2至k找因数
           for (int j=2;j<=k;j++){
        	   if ( a % j == 0 ){
        		   //找到一个因子（小于平方根）
            	   //存储因子
                   if (map.get(j)==null) {//判断是否出现过
                	   //没出现过的因子，存入map，key是因子，value是原始数的位置
                	   map.put(j,i+1);
                   }
                   else if(map.get(j)!=i+1){//因子出现过但value（原始数的位置）不同，此时就是一个可行解
                	   //根据题目要求来判断
                	   //当前数有公共因子的最左边位置
                       r=Math.min(r,map.get(j));
                       //当前数的位置
                       //也就是r和l有大于1的公因数
                       l=i+1;
                   }
                   //重点的部分在这里！！！
                   //当j能被a整除的情况下，此时j是相对较小的因子，用j求出a另一个较大的因子f
                   //因为当i能被a整除时，那么数"a/i"也一定能被a整除
                   //不需要再进行重复的计算，这样算法的运行时间大大降低
                   int f = a / j;
                   //但用i算出另一个较大的因子时，会出现重复的情况
                   //例如a = 4,当遍历到2时，算出另一个较大的因子也是2，这就重复了，要判断一下
                   if ( f != j ){    
                	 //对应大于平方根的因数，同样的步骤再算一遍
                       if (map.get(f)==null) 
                    	   map.put(f,i+1);
                       else if(map.get(f)!=i+1){
                           r=Math.min(r,map.get(f));
                           l=i+1;
                       }
                   }
               }
           }
           //1为因子的情况按题意排除
           //数自身也是一个因数
           if (map.get(a)==null) 
        	   map.put(a,i+1);
           else if (a!=1&&map.get(a)!=i+1){//同上
               r=Math.min(r,map.get(a));
               l=i+1;
           }
           
           //看是不是符合题意的最小方案
           if (r!=min){//判断是否进行更改
               min=r;
               max=l;
           }
       }
       System.out.println(min+" "+max);
       
   }

   
}